Kansengelijkheid - Uitval na 1 jaar - Zonder P

GVS | B Opleiding tot Verpleegkundige (HBO-V) - voltijd - versie 1.0

Auteur

Theo Bakker, lector Learning Technology & Analytics, De HHs

Publicatiedatum

8 juni 2024

1 Inleiding

Na de basis-analyse van de data en het bouwen van de prognosemodellen, gaan we in deze verdiepende analyse dieper in op de onderliggende mechanismen van de modellen. Het doel is beter te begrijpen of er studenten zijn met minder kans op succes en of dit disproportioneel is. Dit kan duiden op kansenongelijkheid.

De verdiepende analyse heeft een aantal stappen:

  1. We lezen de bewerkte dataset in en de modellen die we in de basis-analyse hebben gemaakt.
  2. We maken een explainer om de modellen beter te begrijpen en te kunnen uitleggen. Dit lichten we later in deze pagina toe.
  3. We gebruiken het beste model om de prognosemodellen te verklaren en te begrijpen. We kijken naar de bijdrage van de variabelen aan de voorspelling en passen het model toe op gemiddelde studenten.
  4. Tot slot berekenen we of er een bias bestaat voor verschillende groepen studenten en of er mogelijk sprake is van kansenongelijkheid.

2 Voorbereidingen

2.1 Laad de data

We laden de bewerkte data en prognosemodellen in voor:

Opleiding: GVS | B Opleiding tot Verpleegkundige (HBO-V), voltijd, eerstejaars - Uitval na 1 jaar

Toon code
## Bepaal de paden
sData_outputpath         <- Get_Model_outputpath(mode = "data")
sFittedmodels_outputpath <- Get_Model_outputpath(mode = "last-fits")
sModelresults_outputpath <- Get_Model_outputpath(mode = "modelresults")

## Laad de data voor de opleiding: data, last fits en model results
dfOpleiding_inschrijvingen <- rio::import(sData_outputpath, trust = TRUE)
lLast_fits                 <- rio::import(sFittedmodels_outputpath, trust = TRUE)
dfModel_results            <- rio::import(sModelresults_outputpath, trust = TRUE)

3 Verdiepende analyse van het model

We weten vanuit de basis-analyse welke variabelen van invloed zijn, maar niet hoe en in welke richting: dragen ze sterk bij of juist niet, verhogen of verlagen ze uitval? Om het model beter te begrijpen en te kunnen uitleggen, maken met behulp van het Dalex package een explainer. Dit package is ontwikkeld om beter uit te leggen welke variabelen van belang zijn en wat deze voor een effect hebben in een model. Een explainer is een model-onafhankelijke wrapper om het model heen en geeft inzicht in de voorspellingen van het model en de bijdrage van de variabelen aan de prognose. Een explainer maakt het verder mogelijk om modellen onderling te vergelijken en benchmarken.

3.1 Recap van de basis-analyse

Uit de basis-analyse kwam de volgende lijst met meest voorspellende factoren:

3.2 Maak een explainer

We gaan nu een stap verder met behulp van het Dalex package. Op basis van het tidymodels model extraheren we de informatie voor de explainer van Dalex.

Toon code
## Extraheer het fitted model en de workflow
fitted_model <- last_fit |>
  extract_fit_parsnip()

workflow <- last_fit |>
  extract_workflow()

# Pas de Uitval variabele aan naar numeric (0/1), 
# zodat er een explainer van gemaakt kan worden
dfOpleiding_inschrijvingen$Uitval <- as.numeric(dfOpleiding_inschrijvingen$Uitval) - 1

# Maak een explainer
explain_lm <- DALEX::explain(
  model = workflow,
  data = dfOpleiding_inschrijvingen,
  y = dfOpleiding_inschrijvingen$Uitval,
  label = "Linear Regression")
Preparation of a new explainer is initiated
  -> model label       :  Linear Regression 
  -> data              :  1818  rows  27  cols 
  -> target variable   :  1818  values 
  -> predict function  :  yhat.workflow  will be used (  default  )
  -> predicted values  :  No value for predict function target column. (  default  )
  -> model_info        :  package tidymodels , ver. 1.2.0 , task classification (  default  ) 
  -> predicted values  :  numerical, min =  0.09233298 , mean =  0.3963696 , max =  0.738768  
  -> residual function :  difference between y and yhat (  default  )
  -> residuals         :  numerical, min =  -0.7024894 , mean =  0.003520435 , max =  0.8469217  
  A new explainer has been created!  
Toon code
## Bereken de model parts op basis van de RMSE
mp <- model_parts(explain_lm, loss_function = loss_root_mean_square)

# Toon de resultaten
plot(mp) 

3.3 Pas het model toe op ‘meest voorkomende’ studenten

Nu we deze explainer hebben, kunnen we het model toepassen op de meest voorkomende student. We kijken eerst naar de meest voorkomende student in het algemeen. We analyseren vervolgens de meest voorkomende student in meerdere groepen: naar vooropleiding, geslacht, leeftijd en aansluiting. Om de meest voorkomende student te bepalen, gebruiken we de meest frequente waarden van de variabelen in de dataset per groep.

Ter illustratie Stel dat we een onderscheid maken tussen mbo en havo studenten, dan bepalen we de mediaan van numerieke variabelen en de meest frequente waarde van categorische variabelen. De meest voorkomende student is dus geen daadwerkelijke student, maar een representatie van de groep op basis van de meest frequente kenmerken.

We kijken hiermee naar de voorspelling van het model per groep en de bijdrage van de variabelen aan die specifieke voorspelling. Dit geeft een verder inzicht in de werking van het model. Een categorie met 20 studenten of minder laten we buiten beschouwing.

3.3.1 Toelichting op de opbouw van de kans op uitval

De opbouw van het model bestaat uit een intercept, gevolgd door variabelen die een verschil maken ten opzichte van die intercept. De intercept is de basiskans op uitval voor alle studenten. Deze kans is voor de B Opleiding tot Verpleegkundige (HBO-V) voltijd 39,6%. De cumulatieve bijdrage van de variabelen aan de voorspelling kan positief of negatief zijn. Een positieve bijdrage betekent dat de variabele de kans op uitval verhoogt, een negatieve bijdrage betekent dat het de kans op uitval verlaagt.

Het kan zijn dat nieuwe variabelen geen invloed meer hebben op de kans. Dit betekent niet per se dat ze niet belangrijk zijn. Het kan zijn dat de invloed die ze hebben op de kans al is afgevangen door variabelen die eerder in het model zijn opgenomen. Een voorbeeld: de variabele Cijfer_CE_VO_missing = Ja betekent dat een student geen VO cijfers heeft voor het Centraal Examen. Dit geldt voor vrijwel alle MBO studenten. Doordat de variabele Cijfer_CE_VO_missing de kans op uitval net wat sterker beïnvloedt, komt Vooropleiding = MBO niet meer voor als invloedrijke variabele, maar is dit wel de achterliggende reden dat het cijfer ontbreekt.

Uiteindelijk tellen alle variabelen op tot een definitieve voorspelling die per persoon verschilt, afhankelijk van hun persoonlijke kenmerken per variabele.

3.3.2 De meest voorkomende student

We kijken eerst naar de meest voorkomende student in de opleiding. We analyseren de kans op uitval voor deze fictieve student en de bijdrage van de variabelen aan die kans. Daarbij tonen we de verdeling van de voorspellingen voor deze student voor alle variabelen en per variabele. Dit laat zien welke variabelen belangrijk zijn, naar welke kant de verdeling neigt en welke spreiding de kansverdeling heeft. Wat betekent dit?

  • All data - De eerste variabele all data is eigenlijk geen variabele, maar geeft aan wat alle data samen aan kans op uitval voorspellen. Variabelen die daarna bovenaan staan, wegen het zwaarst in de voorspelling van de kans.
  • Richting - Als de verdeling van de kansen naar de rechterkant van de x-as gaat, draagt deze variabele meer bij aan een toename op de kans op uitval; als deze naar de linkerkant beweegt, draagt deze variabele juist bij aan een afname op de kans op uitval.
  • Spreiding Als de spreiding breed is, geeft dit aan dat er binnen deze variabele veel variatie is in de kans op uitval en er voorzichtig mee omgegaan moet worden. Als de spreiding heel smal is, betekent dit dat de variabele weinig of geen invloed heeft op de kans op uitval. Deze variabelen bevinden zich op de intercept.

Nu de globale opbouw van de kans op uitval bekend is, gaan we verder met de analyse van de meest voorkomende studenten per groep.

3.3.3 Naar geslacht

3.3.4 Naar vooropleiding

3.3.5 Naar aansluiting

Subtotaal voor Aansluiting: 2e Studie, Overig is te laag voor een betrouwbare analyse.

4 Conclusies

Hier komen de conclusies.

 

Verantwoording

Deze analyse maakt deel uit van het onderzoek naar kansengelijkheid van het lectoraat Learning Technology & Analytics van De Haagse Hogeschool: No Fairness without Awareness | Het rapport is door het lectoraat ontwikkeld in Quarto 1.4.549. | Template versie: 0.9.1.9000

 

Copyright

Dr. Theo Bakker, Lectoraat Learning Technology & Analytics, De Haagse Hogeschool © 2023-2024 Alle rechten voorbehouden.